
namespace ActivUFRJ.Classes.Comunidade
{
    public class Comunidade
    {


        public Comunidade()
        {

        }

        /// <summary>
        /// carrega a comunidade a partir do ID
        /// </summary>
        /// <param name="idComunidade"></param>
        public Comunidade(int idComunidade)
        {
            this.ID = idComunidade;
            DBComunidade dbComunidade = new DBComunidade();
            dbComunidade.CarregarComunidade(this);
            dbComunidade.Dispose();
        }

        /// <summary>
        /// carrega a comunidade a partir da querystring
        /// </summary>
        /// <param name="strIdComunidade"></param>
        public Comunidade(string strIdComunidade)
        {
            try
            {
                int idComunidade = System.Convert.ToInt32(strIdComunidade);
                this.ID = idComunidade;
                DBComunidade dbComunidade = new DBComunidade();

                dbComunidade.CarregarComunidade(this);
                dbComunidade.Dispose();
            }
            catch 
            { 

            }
        }

        private int id;
        private string nome;
        private string descricao;
        private System.DateTime dataRegistro;
        private EnvioMensagem envioMensagem;
        private TipoAcesso tipoAcesso;
        private TipoVisualizacao visualizacao;
        private Classes.Usuario.Usuario autor;
        private string linkImagem;
        private Geral.AreaInteresse categoria;
        private string[] palavrasChave;
        private Status status;

        public Status Status
        {
            get { return status; }
            set { status = value; }
        }


        public string[] PalavrasChave
        {
            get { return palavrasChave; }
            set { palavrasChave = value; }
        }

        public Geral.AreaInteresse Categoria
        {
            get { return categoria; }
            set { categoria = value; }
        }

        public int ID
        {
            get { return id; }
            set { id = value; }
        }

        public string Nome
        {
            get { return nome; }
            set { nome = value; }
        }

        public string Descricao
        {
            get { return descricao; }
            set { descricao = value; }
        }

        public System.DateTime DataRegistro
        {
            get { return dataRegistro; }
            set { dataRegistro = value; }
        }

        public EnvioMensagem EnvioMensagem
        {
            get { return envioMensagem; }
            set { envioMensagem = value; }
        }

        public TipoAcesso TipoAcesso
        {
            get { return tipoAcesso; }
            set { tipoAcesso = value; }
        }

        public TipoVisualizacao Visualizacao
        {
            get { return visualizacao; }
            set { visualizacao = value; }
        }

        public Classes.Usuario.Usuario Autor
        {
            get { return autor; }
            set { autor = value; }
        }

        public string LinkImagem
        {
            get { return linkImagem; }
            set { linkImagem = value; }
        }


        public bool SalvarDados()
        {
            DBComunidade dbComunidade = new DBComunidade();
            return dbComunidade.SalvarDados(this);
        }

        public void RegistrarVisita(ActivUFRJ.Classes.Usuario.Usuario usuario)
        {
            DBComunidade dbComunidade = new DBComunidade();
            dbComunidade.RegistrarVisita(this, usuario);
        }

        public bool RegistrarNovoUsuario(ActivUFRJ.Classes.Usuario.Usuario usuario)
        {
            DBComunidade dbComunidade = new DBComunidade();
            return dbComunidade.RegistrarNovoUsuario(this, usuario);
        }

        public bool CancelarRegistro(ActivUFRJ.Classes.Usuario.Usuario usuario)
        {
            DBComunidade dbComunidade = new DBComunidade();
            return dbComunidade.CancelarRegistroUsuario(this, usuario);
        }
    }
}
